package 编程题;
//因子个数

import java.util.*;

/**
 * 一个正整数可以分解成一个或多个数组的积。
 * 例如36=2*2*3*3，即包含2和3两个因子。
 * NowCoder最近在研究因子个数的分布规律，
 * 现在给出一系列正整数，他希望你开发一个
 * 程序输出每个正整数的因子个数。
 */

public class Num_7_29_01 {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        while (scanner.hasNextLine()){
            //输入n：
            String str = scanner.nextLine();

            int[] arr = strsz(str);
            for (int i = 0; i < arr.length; i++) {
                    arr[i] = yinzi(arr[i]);
            }
            for (int i = 0; i < arr.length; i++) {
                    if(i != arr.length - 1){
                        System.out.print(arr[i] + "<br/>");
                    }else{
                        System.out.println(arr[i]);
                    }
            }
        }
    }

    //输入一个字符串，返回
    private static int[] strsz(String str) {
        StringBuffer sb = new StringBuffer();
        int i = 0;
        int conut = 0;
        while (i < str.length()){
            char ch = str.charAt(i);
            if(ch >= '0' && ch <= '9'){
                sb.append(ch);
            }else{
                sb.append('*');
                i += 4;
                conut ++;
            }
            i++;
        }
        String str1 = sb.toString();

        int[] arr = new int[conut + 1];
        i = 0;
        conut = 0;
        int tmp = 0;
        while(i < str.length()){
            char ch = str.charAt(i);
            if(ch >= '0' && ch <= '9'){
                tmp *= 10;
                tmp += (int)(ch - '0');
            }else{
                arr[conut] = tmp;
                tmp = 0;
                conut ++;
                i += 4;
            }
            i++;
        }
        arr[conut] = tmp;
        return arr;
    }

    //返回一个数个因子数个数
    private static int yinzi(int n){
        int count = 0; //count记录因子的个数
        for (int i = 2; i < Math.sqrt(n); i++) {
            if (n % i == 0){ //如果n mod i == 0 那么i为n的因子
                //如果n还能继续被 i 整除，那么继续除以 i 直到 i 不是 n 的因子为止
                while (n % i == 0){
                    n /= i;
                }
                count++; //记录下n的因子i
            }
        }
        if (n != 1){
            count++;
        }
        return count;
    }

}
//30<br/>26<br/>20